package 炫彩SVG类

import (
	objectbase "gitee.com/go_888/xcgui/xcgui/objectbase"
	xc "gitee.com/go_888/xcgui/xcgui/xc"
)

// X结构_SVG SVG矢量图形.
type X结构_SVG struct {
	objectbase.X结构_对象基类
}

// NewByFile SVG_加载从文件, 返回Svg对象.
//
// pFileName: 文件名.
func X创建并按文件(文件名 string) *X结构_SVG {
	p := &X结构_SVG{}
	p.X设置句柄(xc.SVG_加载从文件(文件名))
	return p
}

// NewByString SVG_加载从字符串, 返回Svg对象.
//
// pString: 字符串.
func X创建并按文本(文本 string) *X结构_SVG {
	p := &X结构_SVG{}
	p.X设置句柄(xc.SVG_加载从文本(文本))
	return p
}

// NewByStringW SVG_加载从字符串W.
//
// pString: 字符串.
func X创建并按文本W(文本 string) *X结构_SVG {
	p := &X结构_SVG{}
	p.X设置句柄(xc.SVG_加载从文本W(文本))
	return p
}

// NewByStringUtf8 SVG_加载从字符串UTF8.
//
// pString: 字符串.
func X创建并按文本UTF8(文本 string) *X结构_SVG {
	p := &X结构_SVG{}
	p.X设置句柄(xc.SVG_加载从文本UTF8(文本))
	return p
}

// NewByZip SVG_加载从ZIP, 返回Svg对象.
//
// pZipFileName: zip文件名.
//
// pFileName: svg文件名.
//
// pPassword: zip密码.
func X创建并按zip(zip文件名, svg文件名, zip密码 string) *X结构_SVG {
	p := &X结构_SVG{}
	p.X设置句柄(xc.SVG_加载从zip(zip文件名, svg文件名, zip密码))
	return p
}

// NewByZipRes SVG_加载从资源ZIP, 返回SVG对象.
//
// id: 资源ID.
//
// pFileName: svg文件名.
//
// pPassword: zip密码.
//
// hModule: 模块句柄, 可填0.
func X创建并按资源zip(资源ID int32, svg文件名, zip密码 string, 模块句柄 uintptr) *X结构_SVG {
	p := &X结构_SVG{}
	p.X设置句柄(xc.SVG_加载从资源zip(资源ID, svg文件名, zip密码, 模块句柄))
	return p
}

// NewByZipMem SVG_加载从内存ZIP, 返回Svg对象.
//
// data: zip数据.
//
// pFileName: svg文件名.
//
// pPassword: zip密码.
func X创建并按内存zip(zip数据 []byte, svg文件名, zip密码 string) *X结构_SVG {
	p := &X结构_SVG{}
	p.X设置句柄(xc.SVG_加载从内存zip(zip数据, svg文件名, zip密码))
	return p
}

// NewByRes SVG_加载从资源, 返回Svg对象.
//
// id: 资源ID.
//
// pType: 资源类型.在rc资源文件中.
//
// hModule: 从指定模块加载.
func X创建并按资源(资源ID int32, 资源类型 string, 从指定模块加载 uintptr) *X结构_SVG {
	p := &X结构_SVG{}
	p.X设置句柄(xc.SVG_加载从资源(资源ID, 资源类型, 从指定模块加载))
	return p
}

// SVG_置大小.
//
// nWidth: 宽度.
//
// nHeight: 高度.
func (s *X结构_SVG) X设置大小(宽度, 高度 int32) *X结构_SVG {
	xc.SVG_设置大小(s.X句柄, 宽度, 高度)
	return s
}

// SVG_取大小.
//
// pWidth: 接收返回宽度.
//
// pHeight: 接收返回高度.
func (s *X结构_SVG) X取大小(返回宽度, 返回高度 *int32) *X结构_SVG {
	xc.SVG_取大小(s.X句柄, 返回宽度, 返回高度)
	return s
}

// SVG_取宽度.
func (s *X结构_SVG) X取宽度() int32 {
	return xc.SVG_取宽度(s.X句柄)
}

// SVG_取高度.
func (s *X结构_SVG) X取高度() int32 {
	return xc.SVG_取高度(s.X句柄)
}

// SVG_置偏移.
//
// x: x轴偏移.
//
// y: y轴偏移.
func (s *X结构_SVG) X设置偏移(x轴偏移, y轴偏移 int32) *X结构_SVG {
	xc.SVG_设置偏移(s.X句柄, x轴偏移, y轴偏移)
	return s
}

// SVG_取偏移.
//
// pX: x轴偏移.
//
// pY: y轴偏移.
func (s *X结构_SVG) X取偏移(x轴偏移, y轴偏移 *int32) *X结构_SVG {
	xc.SVG_取偏移(s.X句柄, x轴偏移, y轴偏移)
	return s
}

// SVG_置偏移F.
//
// x: x轴偏移.
//
// y: y轴偏移.
func (s *X结构_SVG) X设置偏移F(x轴偏移, y轴偏移 float32) *X结构_SVG {
	xc.SVG_设置偏移F(s.X句柄, x轴偏移, y轴偏移)
	return s
}

// SVG_取偏移F.
//
// pX: x轴偏移.
//
// pY: y轴偏移.
func (s *X结构_SVG) X取偏移F(x轴偏移, y轴偏移 *float32) *X结构_SVG {
	xc.SVG_取偏移F(s.X句柄, x轴偏移, y轴偏移)
	return s
}

// SVG_取视图框.
//
// pViewBox: 接收返回视图框.
func (s *X结构_SVG) X取视图框(返回视图框 *xc.X结构_矩形) *X结构_SVG {
	xc.SVG_取视图框(s.X句柄, 返回视图框)
	return s
}

// SVG_启用自动销毁.
//
// bEnable: 是否自动销毁.
func (s *X结构_SVG) X启用自动销毁(自动销毁 bool) *X结构_SVG {
	xc.SVG_启用自动销毁(s.X句柄, 自动销毁)
	return s
}

// SVG_增加引用计数.
func (s *X结构_SVG) X增加引用计数() *X结构_SVG {
	xc.SVG_增加引用计数(s.X句柄)
	return s
}

// SVG_释放引用计数.
func (s *X结构_SVG) X释放引用计数() *X结构_SVG {
	xc.SVG_释放引用计数(s.X句柄)
	return s
}

// SVG_取引用计数.
func (s *X结构_SVG) X取引用计数() int32 {
	return xc.SVG_取引用计数(s.X句柄)
}

// SVG_销毁.
func (s *X结构_SVG) X销毁() *X结构_SVG {
	xc.SVG_销毁(s.X句柄)
	return s
}

// SVG_置透明度.
//
// alpha: 透明度.
func (s *X结构_SVG) X设置透明度(透明度 byte) *X结构_SVG {
	xc.SVG_设置透明度(s.X句柄, 透明度)
	return s
}

// SVG_取透明度, 返回透明度.
func (s *X结构_SVG) X取透明度() byte {
	return xc.SVG_取透明度(s.X句柄)
}

// SVG_置用户填充颜色, 用户颜色将覆盖默认样式.
//
// color: xc.RGBA 颜色.
//
// bEnable: 是否有效.
func (s *X结构_SVG) X设置用户填充颜色(颜色 int, 是否有效 bool) *X结构_SVG {
	xc.SVG_设置用户填充颜色(s.X句柄, 颜色, 是否有效)
	return s
}

// SVG_置用户笔触颜色, 用户颜色将覆盖默认样式.
//
// color: xc.RGBA 颜色.
//
// strokeWidth: 笔触宽度.
//
// bEnable: 是否有效.
func (s *X结构_SVG) X设置用户笔触颜色(颜色 int, 笔触宽度 float32, 是否有效 bool) *X结构_SVG {
	xc.SVG_设置用户笔触颜色(s.X句柄, 颜色, 笔触宽度, 是否有效)
	return s
}

// SVG_取用户填充颜色.
//
// pColor: 返回颜色值.
func (s *X结构_SVG) X取用户填充颜色(返回颜色值 *int) bool {
	return xc.SVG_取用户填充颜色(s.X句柄, 返回颜色值)
}

// SVG_取用户笔触颜色.
//
// pColor: 返回颜色值.
//
// pStrokeWidth: .
func (s *X结构_SVG) X取用户笔触颜色(返回颜色值 *int, pStrokeWidth *float32) bool {
	return xc.SVG_取用户笔触颜色(s.X句柄, 返回颜色值, pStrokeWidth)
}

// SVG_置旋转角度, 默认以自身中心点旋转.
//
// angle: 转角度.
func (s *X结构_SVG) X设置旋转角度(转角度 float32) *X结构_SVG {
	xc.SVG_设置旋转角度(s.X句柄, 转角度)
	return s
}

// SVG_取旋转角度, 返回旋转角度.
func (s *X结构_SVG) X取旋转角度() float32 {
	return xc.SVG_取旋转角度(s.X句柄)
}

// SVG_置旋转.
//
// angle: 角度.
//
// x: 旋转中心点X.
//
// y: 旋转中心点Y.
//
// bOffset: TRUE: 旋转中心点相对于自身中心偏移, FALSE:使用绝对坐标.
func (s *X结构_SVG) X设置旋转(角度 float32, 旋转中心点X float32, 旋转中心点Y float32, 偏移方式 bool) *X结构_SVG {
	xc.SVG_设置旋转(s.X句柄, 角度, 旋转中心点X, 旋转中心点Y, 偏移方式)
	return s
}

// SVG_取旋转.
//
// pAngle: 返回角度.
//
// pX: 返回 旋转中心点X.
//
// pY: 返回 旋转中心点Y.
//
// pbOffset: 返回TRUE: 旋转中心点相对于自身中心偏移, FALSE:使用绝对坐标.
func (s *X结构_SVG) X取旋转(返回角度 *float32, 返回x *float32, 返回y *float32, 返回偏移方式 *bool) *X结构_SVG {
	xc.SVG_取旋转(s.X句柄, 返回角度, 返回x, 返回y, 返回偏移方式)
	return s
}

// SVG_显示, 显示或隐藏.
//
// bShow: 是否显示.
func (s *X结构_SVG) X显示(是否显示 bool) *X结构_SVG {
	xc.SVG_显示(s.X句柄, 是否显示)
	return s
}
